CloudWatch AgentをSSM Run Commandを使わずに手動でインストールしてみる
CloudWatch Agentのインストール
SSM経由でコマンドが実行できればCloudWatch AgentのインストールはSSM Run Commandでやることが自分は多いです。
ただ、SSMへの接続が何らかの理由でできなかったりする場合も発生すると思います。
マニュアルでもインストール可能なので今回はその手順を整理していきます。
以下のドキュメントを参考にインストールを行いました。
環境
今回はEC2に構築したWindow Server 2022のインスタンスを使用します。
CloudWatch Agentのインストールに際してS3からソフトウェアをダウンロードする必要があるのですが、今回はインターネット経由で行います。
インターネットへアクセスできない環境であれば、S3のVPCエンドポイントを作成する必要があります。(もしくは手動でファイルをインスタンスに転送する)
また、EC2インスタンスのインスタンスプロファイルにアタッチされているIAMロールには以下のポリシーをアタッチしてあります。
CloudWatch AgentがメトリクスのデータポイントをCloudWatchに登録するのに必要です。
arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
CloudWatch Agentのインストーラーの入手
PowerShellで入手する場合
Power Shellでインストーラを取得する場合は以下のコマンドで入手可能です。
Invoke-WebRequest https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile amazon-cloudwatch-agent.msi
東京リージョンのS3バケットからダウンロードしたい場合は以下のコマンドです。
Invoke-WebRequest https://amazoncloudwatch-agent-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi -OutFile amazon-cloudwatch-agent.msi
ダウンロードが完了するとコマンドを実行したディレクトリにamazon-cloudwatch-agent.msi
という名前でファイルが作成されます。
ブラウザで入手する場合
Windows Server 2022のマシンイメージならMicrosoft Edgeがインストールされているので以下のURLにアクセスすればダウンロードが開始します。
RDPで転送する
手元で上記の手段でダウンロードしたファイルを転送する方法もあります。
MicrosoftのRDPクライアントであれば、ファイルを「Ctrl + C」でコピーしRDPのウィンドウで「Ctrl + V」を押せば転送ができます。
ファイル転送の手段は何でもよく、とりあえずEC2インスタンス側に転送できれば良いです。
インストール
PowerShellで行う
Power Shellでインストールする際は以下のコマンドでインストールできます。
msiexec /i amazon-cloudwatch-agent.msi
GUIで行う
ファイラーで確認すると以下の様なアイコンのファイルがあるかと思います。 こちらをダブルクリックしてもインストールが可能です。
設定ファイルの配置
CloudWatch Agentは以下のパスにインストールされます。
C:\Program Files\Amazon\AmazonCloudWatchAgent
以下はディレクトリの中身です。 いくつか補足説明を入れておきます。
amazon-cloudwatch-agent-config-wizard.exe <= 設定ファイルを作成するための補助ツール amazon-cloudwatch-agent-ctl.ps1 <= CloudWatch Agentを起動するためのスクリプト amazon-cloudwatch-agent-schema.json amazon-cloudwatch-agent.exe config-downloader.exe config-translator.exe config.json <= CloudWatch Agentの設定ファイル CWAGENT_VERSION LICENSE NOTICE permission.ps1 RELEASE_NOTES start-amazon-cloudwatch-agent.exe THIRD-PARTY-LICENSES
CloudWatch AgentはSSMパラメータストアに配置した設定ファイルを読み込むことも可能なのですが、今回はインスタンスのみに配置することで進めます。
このディレクトリ内のconfig.json
ファイルを書き換えれば設定ファイルの設置は完了です。(最初は空です)
CloudWatch Agentの起動
C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json
の設定ファイルを使う場合は以下のコマンドで起動可能です。
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"
起動後の確認
タスクマネージャーでCloudWatch Agentが起動していることを確認しても良いですが、CloudWatchのメトリクスが意図した通りに登録されているかを確認するのが一番良いです。 問題なければこれで作業は完了です。
最後に
SSM RunCommandを使わなくても意外と簡単にCloudWatch Agentのインストールができて驚きました。